#include<iostream>
using namespace std;
#include<algorithm>
#include<vector>
/*
功能描述：
    容器内指定范围满足条件的元素替换为新元素
函数原型：
    replace_if(iterator beg,iterator end,_pred,newvalue);
    按条件替换元素，满足条件的替换成指定元素
    beg开始迭代器
    end结束迭代器
    _pred谓词
    newvalue替换的新元素
*/
void myPrint(int val)
{
    cout<<val<<" ";
}
class Greater30
{
public:
    bool operator()(int val)
    {
        return val>=30;
    }
};
void test01()
{
    vector<int> v;
    v.push_back(10);
    v.push_back(30);
    v.push_back(50);
    v.push_back(40);
    v.push_back(20);
    cout<<"替换前："<<endl;
    for_each(v.begin(),v.end(),myPrint);
    cout<<endl;
    //将大于等于30替换为3000
    cout<<"替换后："<<endl;
    replace_if(v.begin(),v.end(),Greater30(),3000);//把大于等于30都替换
    for_each(v.begin(),v.end(),myPrint);
    cout<<endl;
}
int main()
{
    test01();
}